The invention relates to security means in a computer system, and more particularly, to a system for securing access to resources or computer systems by means of a self modifying, single use password that limits access to a system and automatically changes each time it is used.
Authenticating and controlling access to resources has always been a difficult task. The problem is made more difficult when the resources are separated from the user, and are accessed by users across a possibly insecure computer or telephone network, with the presence of eavesdroppers, intruders and other attackers. The resources could be physical objects such as printers or remote hard disks, or enterprise portals such as an Internet banking site or corporate website.
Traditionally, one of the ways of securing access to resources, both local and remote, has been through passwords. However passwords are typically static. If a username and password is stolen by an eavesdropper, the same username and password combination can be used by the eavesdropper to masquerade as the real user without the user's knowledge, until the user changes his password.
To avoid sending passwords across a network in cleartext, a known way to authenticate users has been to generate a hash code of the authentication information and sending this hash across the network for remote authentication. To further secure this exchange, the hash code could be signed using a publicly available signature algorithm such as RSA or ElGamal. However, these methods still do not protect against replay attacks, where an eavesdropper captures the relevant packets and replays them to a server at a later time.
Password capture is particularly easy when such sensitive data travels across large and possibly hostile networks where the user has no control over many nodes in the network. The so-called “network sniffers” can be easily configured to extract possible username and password combinations from all the traffic travelling across a network.
To thwart the network sniffers, all data exchanges between the user and the resource could be encrypted. There are several encryption schemes available for securing communications between two parties. Hardware encryption devices have been used for decades to secure communications across land based telephone lines. The GSM mobile telephone network uses the A5 encryption algorithm to encrypt data. Network security protocols such as IPSec, SSL and SSH are currently used to secure communications between two computers. These security protocols still assume that the user's computer or communications device is secure and trustworthy whereas this is very often not the case. The user's computer or communications device could be infested with trojans, virii and other malware, which could capture keystrokes or data even before they are encrypted. This problem becomes specially important when dealing with critical services such as banking and enterprise applications.
One of the main problems with the above-mentioned authentication methods is the static nature of the authentication information. A well known means of providing additional security over static authentication information has been the use of one time passwords, which are valid only for one transaction. RSA's SecurID system provides a one time password system consisting of a hardware device which generates one time passwords based on the current time. The one time password generated by this device is supplied to an authentication server for verification. One problem with the SecurID system is that the client device keeps generating a one time password every one to two minutes even when it is not needed. This wastes battery power. Another problem is that the client device and authentication server need to have internal clocks which are synchronised. Secure Computing's “SafeWord” products implement a one time password system based on a secret shared between the client device and the authentication server. However, these products do not protect against an attacker who could have captured the shared secrets.